Release Of Hummingbird – Distribution List Converter
With the release of Outlook Groups, I got a lot of questions regarding the possibility of conversion of existing distribution groups to the new model. Instead of having users manually go through the process, I wrote a sample that demonstrates how it’s done with the help of EWS and Active Directory APIs. So how do you set it up?
Clone the repository here: https://github.com/Microsoft/hummingbird. You will get the project file with the associate source files. Open the project file (Hummingbird.csproj) and save the Visual Studio solution. Next, click on Manage NuGet Packages…
In the package manager, notice that there is an alert notifying you about the fact that you need to restore missing packages. Click on Restore.
Once you have the packages restored, you can build the project and run the application:
From here on, you will be able to use the application directly with O365. Click on Settings to configure all application parameters:
For the username, use the standard O365 email address. The server URL for the main EWS endpoint is https://outlook.office365.com/EWS/Exchange.asmx – make sure that you also select O365 as the target. Once you enter both the credentials and the server information, click on the respective Save buttons.
Moving forward, you will have everything required for migration. On the main page, you can enter the alias of the DL (skip the domain) and click on Create Backup. The output (as long as the alias is resolved) will be an .xmldl file that contains the original alias, DL owner and list of members. Hummingbird will not automatically delete the distribution list for you, so nothing to worry about. You can use this .xmldl file in the next step when you will create the group. If you want to preserve the alias, you will need to manually delete the DL first. Otherwise, the new group will be created with the new alias and a list of members from the original DL. Every member of the new group will receive a welcome email upon completion.
If you run into any issues, open a new bug on GitHub.